package com.yhd.entity.query;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yhd.model.PageInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.io.Serializable;
import java.util.Date;

/**
 * 课程已预约信息表
 */
@Data
public class CourseBookedVO extends PageInfo implements Serializable {
    /**
     * 主键
     */
    @Column(name = "ID")
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "jdbc")
    @ApiModelProperty(value = "id")
    private Integer id;



    /**
     * 课程id
     */
    @Column(name = "courseId")
    @ApiModelProperty(value = "课程id")
    private String courseId;
    /**
     * 排课id
     */
    @Column(name = "courseSchId")
    @ApiModelProperty(value = "排课id")
    private String courseSchId;

    /**
     * 预约的用户id
     */
    @Column(name = "cuserId")
    @ApiModelProperty(value = "预约的用户id")
    private String cuserId;

    /**
     * 预约的用户名
     */
    @Column(name = "cuserName")
    @ApiModelProperty(value = "预约的用户名")
    private String cuserName;

    /**
     * 招生老师id
     */
    @Column(name = "tuserId")
    @ApiModelProperty(value = "招生老师id")
    private String tuserId;

    /**
     * 招生老师
     */
    @Column(name = "tuser")
    @ApiModelProperty(value = "招生老师")
    private String tuser;
    /**
     * 推荐人id
     */
    @Column(name = "referrerUserId")
    @ApiModelProperty(value = "推荐人id")
    private String referrerUserId;
    /**
     * 推荐人
     */
    @Column(name = "referrerUser")
    @ApiModelProperty(value = "推荐人")
    private String referrerUser;

    /**
     * 推荐人联系方式
     */
    @Column(name = "referrerUserPhone")
    @ApiModelProperty(value = "推荐人联系方式")
    private String referrerUserPhone;
    /**
     * 是否同意课程协议 1是 0否
     */
    @Column(name = "isAgreeAgreement")
    @ApiModelProperty(value = "是否同意课程协议 1是 0否")
    private Integer isAgreeAgreement;
    /**
     * 0:待审核 1:待付款  2:已付款 3:拒绝报名 4取消订单
     */
    @Column(name = "status")
    @ApiModelProperty(value = "0:待审核 1:待付款  2:已付款 3:拒绝报名 4取消订单")
    private Integer status;
    /**
     * 创建时间
     */
    @Column(name = "createTime")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 修改人
     */
    @Column(name = "updateUserId")
    private String updateUserId;

    /**
     * 修改时间
     */
    @Column(name = "updateTime")
    private Date updateTime;

    /**
     * 流水号
     */
    @Column(name = "serialNum")
    @ApiModelProperty(value = "流水号")
    private String serialNum;

    /**
     * 支付时间
     */
    @Column(name = "支付时间")
    @ApiModelProperty(value = "支付时间")
    private Date payTime;


    /**
     * 性别 0女 1男
     */
    @Column(name = "sex")
    @ApiModelProperty(value = "性别 0女 1男")
    private Integer sex;

    /**
     * 证件类型
     */
    @Column(name = "cardType")
    @ApiModelProperty(value = "证件类型")
    private String cardType;
    /**
     * 证件号码
     */
    @Column(name = "cardNo")
    @ApiModelProperty(value = "证件号码")
    private String cardNo;
    /**
     * 生日
     */
    @Column(name = "birthday")
    @ApiModelProperty(value = "生日")
    private String birthday;
    /**
     * 电话
     */
    @Column(name = "phone")
    @ApiModelProperty(value = "电话")
    private String phone;

    /**
     * 公司
     */
    @Column(name = "company")
    @ApiModelProperty(value = "公司")
    private String company;

    /**
     * 职位
     */
    @Column(name = "position")
    @ApiModelProperty(value = "职位")
    private String position;
    /**
     * 预约类型：0=普通预约，1=体验预约
     */
    @Column(name = "subType")
    @ApiModelProperty(value = "预约类型：0=普通预约，1=体验预约")
    private Integer subType = 0;

    /**
     * 生成得订单号
     */
    @Column(name = "orderNo")
    @ApiModelProperty(value = "生成得订单号")
    private String orderNo;
    
    /**
     * 类型 activity:活动，course:课程
     */
    @Column(name = "type")
    @ApiModelProperty(value = "类型 activity:活动，course:课程")
    private String type;
    
    /**
     * 用户名
     */
    @Column(name = "userName")
    @ApiModelProperty(value = "用户名")
    private String userName;
    
    /**
     * 支付方式：0线下支付 1线上支付 2免费
     */
    @Column(name = "payType")
    @ApiModelProperty(value = "支付方式：0线下支付 1线上支付 2免费")
    private Integer payType;
    /**
     * 是否允许参与：0否 1是
     */
    @Column(name = "participate")
    @ApiModelProperty(value = "是否允许参与：0否 1是")
    private Integer participate;
    /**
     * 0免费 1付款  不传全部/0未预约 1已预约  不传全部
     */
    @Column(name = "checkType")
    @ApiModelProperty(value = "查询类型 0免费 1付款  不传全部/0未预约 1已预约  不传全部")
    private Integer checkType;

    /**
     * 查询开始时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "startTime")
    @ApiModelProperty(value = "查询开始时间")
    private Date startTime;

    /**
     * 查询结束时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "endTime")
    @ApiModelProperty(value = "查询开始时间")
    private Date endTime;
}